草庐IT

c++ - Swig -includeall 除了...

全部标签

c++ - 在 Windows 的 dirent.h 中找不到 mkdir() 函数

我在VC2013中为Windows使用dirent.h1.20(source)。我在里面找不到mkdir()。我该如何使用它?或者我可以仅使用dirent.h以某种方式创建目录吗? 最佳答案 在不使用任何其他库的情况下提供帮助的最简单方法是。#ifdefined_MSC_VER#include#elifdefined__GNUC__#include#include#endifvoidcreateDir(stringdir){#ifdefined_MSC_VER_mkdir(dir.data());#elifdefined__GNUC

c++ - printf 的格式化缓冲区在哪里?

我在一个受限的嵌入式系统上工作。目前我们使用snprintf到缓冲区,然后用另一个语句,将缓冲区打印到串口:chartemp_buffer[256];intbytes_written=snprintf(temp_buffer,sizeof(temp_buffer),"Solarsystemhas%dplanets\n",10);if(bytes_written>0){Serial_Port_Output(temp_buffer,bytes_written);}我想切换到printf直接写入串口。根据我们的编译器文档,我拦截了用于输出数据以使用串行端口的函数调用。(该接口(interfa

c++ - snprintf 的逆函数

C或C++中是否有任何函数可以执行snprintf的逆运算,这样charbuffer[256]snprintf(buffer,256,"Number:%i",10);//Buffernowcontains"Number:10"inti;inverse_snprintf(buffer,"Number:%i",&i);//inowcontains10我可以自己写一个满足这个要求的函数,但是标准库中已经有了吗? 最佳答案 是的,有sscanf().它返回与输入成功匹配的标记数,因此您可以检查返回值以查看它在输入字符串中的位置。if(ssc

c++ - c 中的 union 一次存储一个数据

如果在内存中分配的union大小等于以字节为单位的最大数据类型成员,那么谁能告诉我编译器如何存储和获取两个数据doubled和inti(总共8+4个字节)(doubleonmy机器是8个字节)。#includeuniontest{inti;doubled;};intmain(){uniontestobj;obj.d=15.5;obj.i=200;printf("\nValuestoredindis%f",obj.d);printf("\nValuestorediniis%d",obj.i);printf("\nsizeofobjis%d",sizeof(obj));}**Outputi

c++ - 字符是否在 C 表达式中自动提升?

我对我的一位同事发表了声明,内容是:"charsareautomaticallypromotedtointegersinCexpressions,andthat'sfineforperformancesinceCPUsworkfastestwiththeirnaturalwordsize.我相信由于字符的等级,字符提升行为已在标准中的某处说明。这是我得到的回复:"Charactersarenotdefaultpromotedtoaninteger.Theregistersizeis32bit,butmultiplebytevaluesinarowcanbepackedintoasing

c++ - 为什么 boost.geometry.index.rtree 比 superliminal.RTree 慢

我测试了boost.geometry.index.rtree(boost1.59www.boost.org)和superliminal.RTree(http://superliminal.com/sources/sources.htm#C_Code)。令我惊讶的是,superliminal.RTree比boost.geometry.index.rtree更快。环境设置将相同的空间索引数据添加到superliminal.RTree和boost.geometry.index.rtree对象。测试相同的空间索引查询100次并获得消耗的时间。GCC版本是“gccversion4.4.62011

c++ - 为什么 "%I64d"在同一格式字符串中多次使用时会给出奇怪的输出?

当我在codeforces上解决一个编程问题时,我发现当格式说明符“%I64d”在同一格式字符串中被多次使用时,例如:longlonginta,b,c;a=1,b=3,c=5;printf("%I64d%I64d%I64d\n",a,b,c);输出是103然而,当我将每个说明符分开时,例如:longlonginta,b,c;a=1,b=3,c=5;printf("%I64d",a);printf("%I64d",b);printf("%I64d",c);puts("");输出如预期的那样:135这是查看上述代码片段的ideone链接:http://ideone.com/f2udRB请帮

c++ - 如何有效地检测 4 个整数变量的对称性?

我想在4个整数变量i,j,k和l中找到对称性。对称性是:所有四个数字都相等:XXXX,三个数字相等:XXXY,XXYX,XYXX,YXXX两对相等的数字:XXYY,XYXY,XYYX,...一对相等的数字和两个不同的数字:XXYZ,XYXZ,XYZX,...所有数字都不同。所有变量都在某个非连续范围内运行。我使用嵌套的ifelse语句。第一个if检查所有变量的不平等。如果不是,那么我有情况1。下一个if检查是否有任何相等的对。如果不是,则情况5。下一个if检查三个相等的数字。如果为真,则情况2。否则,最后一个if检查两对相等的数字。如果为真,则情况3,否则情况4。if(!(i==j&&

c++ - 在包含 float 的结构上使用 memset()

在一个C/C++混合项目中,我发现了一些我可以简化为的代码#includestructStructContainingDouble{doubled;///otherelementsomitted};voidclear(StructContainingDouble*p){memset(p,0,sizeof*p);}不停止Cppcheck以引发可移植性警告Usingmemset()onstructwhichcontainsafloatingpointnumber.消息是正确的,但是由于float被声明为double,所以它似乎是误报,因为在double中,(正)零值是按照IEEE754标准

c++ - 在控制台应用程序中包含 "help"消息的最佳方法是什么?

我正在编写一个控制台应用程序,它可以快速获取许多命令行参数和标志。出于这个原因,我希望用户能够访问这些标志的描述以及它们的用途。我能想到几种可能的解决方案我可以写一个README文件,然后把它放在与可执行文件相同的目录中。优点是简单便携,缺点是很容易被人删除/编辑文件。我可以将整个消息粘贴到程序中的一个变量中,并在用户键入mycmd--help或类似内容时将其打印到屏幕上。优点,保持可执行且不可编辑,缺点是代码,因为我会在下面float类似的东西。constchar[]helpmsg="Line1\n""Line2\n""...\n""LineN\n";我可以为我的程序编写一个man条